企业级手机当扫码枪小程序落地实践:从条码识别到系统对接全链路解析

企业级手机当扫码枪小程序落地实践:从条码识别到系统对接全链路解析
去年Q3我们接了个挺有意思的活儿,一家做连锁医药流通的客户,底下几十个仓配中心,每年光扫码枪采购和维护就烧掉不少钱。他们老板拍板:能不能用安卓手机或者员工自用机,跑个小程序就当扫码枪使?别笑,这需求在零售、仓储圈越来越常见,但真要从demo做成能扛住日常盘点的企业级应用,坑比想象的多。
先聊条码识别。刚开始团队里小伙子说直接用微信的wx.scanCode不就完了,试了两天被否了。企业场景你要连续扫、要嵌在自己的盘点界面里、要扫完立马本地校验,微信那个全屏扫一扫一关就退回聊天界面,业务流直接断片。我们最后选了小程序原生camera组件加自研取景框,底层嵌一个编译成WebAssembly的条码解码库(基于zxing改的),支持Code128、EAN-13、QR这些常见类型。仓库环境你懂的,灯光昏暗、标签被药水糊了、打印模糊,标准接口识别率掉到八成左右。后来我们加了动态曝光和局部对比度拉伸,针对低密度一维码做了多尺度采样,才把识别率拉到99.95%以上,平均延时压在180ms。这里有个细节点,iOS和安卓的camera底层渲染差异极大,iPhone上流畅得很,千元安卓机容易掉帧,得做分辨率分级和帧率动态降级,否则扫久了机器发烫直接崩。
手机要替代扫码枪,手感也得跟上。我们做了硬件按键映射,安卓机上把音量下键当成扳机,长按连扫,不用老戳屏幕。同时本地逻辑不能少:扫出来的SKU得先跟当前任务单比对,不对就震动加红框报错。仓库深处经常没信号,必须离线干活。小程序里我们塞了个轻量本地队列,每笔扫描先写storage并记录操作日志,网络恢复后走增量同步接口把数据吐给中间层,冲突用时间戳兜底,这招在地下仓实测很稳。
系统对接才是重头戏。客户后端是SAP ECC加一套老WMS,小程序肯定碰不到内网。我们在DMZ区架了一层API网关,小程序通信走HTTPS双向证书,每台设备绑定证书指纹,相当于实体枪的序列号。业务数据走JSON over REST,高频盘点状态用WebSocket推。最麻烦的是那套老WMS只认私有TCP报文,我们专门写了个协议转换微服务,把RESTful请求转成它能懂的定长包。全链路压测下来端到端延迟不到300毫秒,工人扫完几乎无感,SLA达标。
安全合规这块在医药行业马虎不得。手机丢了等于枪丢了?我们做了设备注册和远程吊销,管理员后台一键拉黑,设备再开小程序直接强制重新鉴权。所有扫描行为带员工ID、时间、蓝牙信标定位存进审计库,满足GSP那条“全程可追溯”的硬指标。权限也分得细,门店点和总仓盘点的角色能看到的数据域完全不同。
项目跑满三个月,客户盘点效率提了40%多,差错率从千分之三掉到万分之五。说白了,现在手机摄像头硬件素质比廉价扫码枪强,难点全在工程化落地。如果你也要做这类企业小程序,别只盯着识别率,把离线、对接、安全这几环吃透,交付的才是真能用的生产工具,而不是玩具。

微信号:18581869297
添加微信好友, 获取更多信息
复制微信号



常见问题相关资讯

复制成功
微信号: 18581869297
添加微信好友, 获取更多信息
我知道了